package com.xiaoshuidi.cloud.module.contract.controller.admin.roommate.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
* 合同同住人数据 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class ContractRoommateBaseVO {

    /**
     * 关联业主合同
     */
    @Schema(description = "关联业主合同")
    private Long houseContractId;

    /**
     *关联租客合同
     */
    @Schema(description = "关联租客合同")
    @NotNull(message = "租客合同不能为空")
    private Long roomContractId;

    /**
     *租客名
     */
    @Schema(description = "租客名", required = true)
    @NotNull(message = "租客名不能为空")
    private String roommateName;

    /**
     *同住人手机号
     */
    @Schema(description = "同住人手机号")
    @NotNull(message = "同住人手机号不能为空")
    private String roommatePhone;

    /**
     *证件类型 id 身份证 | passport 护照 |taiwan_passport 台胞证 |HKorMacao_passport 港澳居民通行证 |other 其他,不能为空
     */
    @Schema(description = "证件类型 id 身份证 | passport 护照 |taiwan_passport 台胞证 |HKorMacao_passport 港澳居民通行证 |other 其他,不能为空")
    private String roommateIdType;

    /**
     *证件号码
     */
    @Schema(description = "证件号码")
    private String roommateIdNumber;

    /**
     *备注
     */
    @Schema(description = "备注")
    private String roommateComment;
    /**
     * 性别
     */
    @Schema(description = "性别")
    private Integer roommateGender;
    /**
     * 年龄
     */
    @Schema(description = "年龄")
    private Integer roommateAge;
    /**
     * 学历
     */
    @Schema(description = "学历")
    private String roommateEducation;
    /**
     * 职业
     */
    @Schema(description = "职业")
    private String roommatePosition;
    /**
     *国籍
     */
    @Schema(description = "国籍")
    private String nationality;

    /**
     *关系
     */
    @Schema(description = "关系")
    private String relation;

    /**
     *操作人id
     */
    @Schema(description = "操作人id")
    private Integer operator;

    /**
     *0-同住人 1-主住人
     */
    @Schema(description = "0-同住人 1-主住人")
    private Integer roommateType=0;

    /**
     *状态  1 待入住 | 2 已入住
     */
    @Schema(description = "状态")
    private Integer status=1;

    /**
     * 证件附件地址
     */
    @Schema(description = "证件附件地址")
    private String certificateUrl;

    /**
     * 退房时间
     */
    private LocalDate checkoutTime;
    /**
     * 退房操作人
     */
    private Long checkoutOperator;
     /**
     * 安全协议链接
     */
    private String protocolViewUrl;

}
